package ru.spb.nicetu.altx.mnemo.cell;

import java.util.List;

import org.eclipse.jface.viewers.ComboBoxCellEditor;
import org.eclipse.swt.widgets.Composite;

import ru.spb.nicetu.altx.mnemo.extpoint.valuetypes.SettingValue;

/**
 * <pre>
 * Класс редактора значений для режимов алгоритма
 * </pre>
 * @author ilia
 *
 */
abstract public class ASettingCellEditor extends ComboBoxCellEditor {
  
  abstract protected List<String> getValues();
  
  public ASettingCellEditor() {
    super();
  }

  public ASettingCellEditor(Composite composite, String[] values) {
    super(composite, values);
  }
  
  @Override
  protected Object doGetValue() {
    return new SettingValue(getValues().get((Integer) super.doGetValue()));
  }
  
  public void doSetValue(Object value) {
    if (value instanceof SettingValue)
      super.doSetValue(getValues().indexOf(((SettingValue) value).getSetting()));
    else
      super.doSetValue(0);
  }
}
